home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Programmer Power Tools
/
Programmer Power Tools.iso
/
tex
/
dvivga9.arc
/
MOVEDOWN.H
< prev
next >
Wrap
Text File
|
1988-05-30
|
1KB
|
36 lines
/* -*-C-*- movedown.h */
/*-->movedown*/
/**********************************************************************/
/****************************** movedown ******************************/
/**********************************************************************/
void
movedown(a)
register INT32 a;
{
/* From DVITYPE Version 2.6:
"Vertical motion is done similarly [to horizontal motion handled
in moveover()], but with the threshold between ``small'' and
``large'' increased by a factor of five. The idea is to make
fractions like ``1/2'' round consistently, but to absorb
accumulated rounding errors in the baseline-skip moves."
The one precaution we need to take here is that fontptr can be
NULL, which we treat like a large movement. This NULL pointer
was used without error on many different machines for 2 years
before it was caught on the VAX VMS implementation, which makes
memory page 0 inaccessible.
*/
v += a;
if ((fontptr == (struct font_entry *)NULL) ||
(ABS(a) >= 5*fontptr->font_space))
vv = PIXROUND(v, conv) + tmargin;
else
{
vv += PIXROUND(a, conv);
vv = fixpos(vv-tmargin,v,conv) + tmargin;
}
}